

// 所有的控制器  ，由于控制器区分开了，所以要在app.js 注入、
// 1. 创建登录的模块，并且创建登录的控制器
var loginApp = angular.module('loginApp',[])

loginApp.controller('loginController',function ($scope,$http) {
    $scope.formData = {};  //数据
    $scope.postForm = function () {   //发送的方法
        // 1.formData 添加一个属性， action 代表的就是请求的行为
        $scope.formData.action = 'login';
        $http({
            method: 'POST',
            url: './get.php',
            data: $.param($scope.formData),
            headers: {'Content-Type': 'application/x-www-form-urlencoded'}
        }).success(function (data) {
            console.log(data);
            if(!data.success){
                // 当前登录失败
                if(!data.errors){
                    // 用户名，密码错误
                    $scope.message = data.message;
                }else {
                    // 用户名，密码为空的错误
                    $scope.errorUsername = data.errors.username;
                    $scope.errorPassword = data.errors.password;
                }
            }else{
                // 当前登录成功
                window.location.href = '#/list/0';
                alert(1111);
            }
        })
    }
})
// 列表页面的模块
var pageList = angular.module('pageList',[]);
pageList.controller('ListTypeCtrl',function ($scope,$http) {
    $http({
        method:'GET',
        url:'get.php?action=get_arctype&where=reid=0'
    }).success(function (data) {
        // console.log(data);
        $scope.lists = data;
    }).error(function (err) {
        console.log(err);
    })
})

// 文章列表控制器
totals = 0;
pageList.controller('arcListCtrl',function ($scope,$http,$location) {
    //首先先获取到当前的路径
    $scope.typeid = $location.path().replace('/list/','');
    // console.log($location);
    // console.log($scope.typeid);  //2  代表安卓   3代表IOS
    //获取文章的总数
    if($scope.typeid == 0){
        var get_total_url = 'get.php?action=get_total';
    }else{
        // 获取某一个分类的文章
         get_total_url = 'get.php?action=get_total&where=typeid='
        + $scope.typeid;
    }

  // 获取所有的对应分类的文章数量,得到之后开始设置分页显示内容
   $http({
      method:'GET',
      url: get_total_url
   }).success(function (data) {
       // console.log(data);
       // 获取当前文章总数量
       $scope.paginationConf.totalItems = data.total;
   }).error(function (err) {
    console.log(err);
   })
    // 设置分页对象
   $scope.paginationConf = {
     currentPage:1,   //当前页数
     itemsPerpage:5,  //每页多少条
     pageLength:5,    //totalItems  是文章总数量
    // 可以自动更换的每页多少条   这里一定要注意有一个空格 ,定义好的
     perPageOptions:[5, 10, 20, 30, 40, 50],
     remenberPerPage:'perPageItems',
     onChange:function () {     //方法
         // 先判断当前页数是否是第一页，获取到查询的起始位置
         if($scope.paginationConf.currentPage == 1){
             // 当前是第一页
             $scope.limit = 0;
         }else{
             //（当前页数-1）*每页多少条
             $scope.limit = $scope.paginationConf.currentPage * $scope.paginationConf.itemsPerpage
              - $scope.paginationConf.itemsPerpage;
         }
          // 根据 typeid 和当前的页数 currentPage 整理好请求的URL;     typeid 查询哪个分类
         if($scope.typeid == 0){
             $geturl = 'get.php?action=get_list&offset=' + $scope.limit + '&rows=' + $scope.paginationConf.itemsPerPage + '&orderField=id&orderBy=DESC';
         }else{
             $geturl='get.php?action=get_list&offset='+$scope.limit+'&rows='+$scope.paginationConf.itemsPerPage+'&where=typeid='+$scope.typeid+'&orderField=id&orderBy=DESC';
         }
         // 最后发送请求
         // offset 当前的查询的偏移量
         // rows  当前查询多少条
         // typeid 查询哪个分类
         // orderField   根据哪个字段进行排序
         // orderBy  排序规则

         $http({
             method:'GET',
             url:$geturl
         }).success(function (data) {
             $scope.lists = data;
         }).error(function (err) {
             console.log(err);
         })
     }
   }
})

// 新增模块

var addCont = angular.module('addCont',[]);
addCont.controller('addContCtrl',function ($scope,$http) {
    // select  里面需要用到的分类
    $http({
        method:'GET',
        url:'get.php?action=get_arctype&where=reid=0'
    }).success(function(data,status,headers,config){
        $scope.lists = data;
    }).error(function(data,status,headers,config){
        console.log('get type is error');
    })
    // 执行写入的操作
    $scope.formData = {};
    $scope.formData.action = 'add_article';
    $scope.postForm = function () {
        $http({
            method:'POST',
            url:'get.php',
            data:$.param($scope.formData),
            headers:{'Content-Type':'application/x-www-form-urlencoded'}
        }).success(function (data) {
            $scope.errorBye = function () {
                $('#errorbox').fadeOut();
            }
            $scope.errorShow = function () {
                $('#errorbox').fadeIn();
            }
            if(!data.errors){
                $scope.meg_success = '插入成功！正在返回列表页面..';
                $scope.meg_error = '';
                setTimeout(function () {location.href = '#/list/0'},1000);
            }else{
                // 添加失败
                $scope.meg_success = '';
                var get_error = '';
                if(data.errors.hasOwnProperty('title')){
                    get_error = data.errors.title;
                }
                if(data.errors.hasOwnProperty('content')){
                    get_error = get_error+(get_error?"&":"") +
                        data.errors.content;
                }
                if(data.errors.hasOwnProperty('typeid')){
                    get_error = get_error+(get_error?"&":"") +
                            data.errors.typeid;
                }
                $scope.meg_error = get_error;
            }
        })
    }
})


// 修改模块
var modifyCont = angular.module('modifyCont',[]);
modifyCont.controller('modifyContCtrl',function ($scope,$http,$stateParams) {
    // 获取分类列表
     $http({
         method:'GET',
         url:'get.php?action=get_arctype&where=reid=0'
     }).success(function (data,status,headers,config) {
         $scope.types=data;
     }).error(function (data,status,headers,config) {
         console.log("get type list error...");
     });
    // 读取这一条数据
    console.log($stateParams);
    $http({
        method:'GET',
        url:'get.php?action=get_article&id='+$stateParams.Id
          // 读取文章内容
    }).success(function (data,status,headers,config) {
        $scope.lists = data;
        console.log(data);
    }).error(function (data,status,headers,config) {
        console.log("error...");
    });
    // 更新数据  postForm  操作
    $scope.formData = {};
    $scope.postForm = function () {
        $scope.formData.action = 'update_article';
        $scope.formData.id = $stateParams.Id;
        $scope.formData.title = form.title.value;
        $scope.formData.content = form.content.value;
        $scope.formData.typeid = $("#typeid option:selected").val();//待优化取值方式
        $http({
            method: 'POST',
            url: 'get.php',
            data: $.param($scope.formData),
            headers: {'Content-Type': 'application/x-www-form-urlencoded'}
        })
            .success(function (data) {
                console.log(data);
                if (data.code == 101) {
                    //添加成功
                    console.log('修改成功');
                    $scope.meg_success = "修改成功! 正在返回列表页...";
                    $scope.meg_error = "";
                    setTimeout(function () {location.href = '#/list/0'}, 1000);
                } else {
                    //添加失败
                    console.log('修改失败');
                    var get_errors = "";
                    $scope.meg_success = "";
                    //信息提示框状态
                    $scope.errorBye = function () {
                        $('#errorbox').fadeOut();
                    }
                    $scope.errorShow = function () {
                        $('#errorbox').fadeIn();
                        $scope.meg_error = '';
                    }
                    if (data.errors) {
                        console.log("有错误信息");
                        if (data.errors.hasOwnProperty('title')) {
                            get_errors = data.errors.title;
                        }
                        if (data.errors.hasOwnProperty('content')) {
                            get_errors = get_errors + (get_errors ? "&" : "") + data.errors.content;
                        }
                        $scope.meg_error = get_errors;
                    } else {
                        console.log("无错误信息");
                        $scope.meg_error = "修改失败，无改动！66";
                    }
                }

            });

    };
})

// 详情模块
var showCont = angular.module('showCont',[]);
showCont.controller('showContCtrl',function ($scope,$http,$stateParams) {
    console.log($stateParams.Id);
    $http({
        method:'GET',
        url:'get.php?action=get_article&id=' + $stateParams.Id
    }).success(function (data) {
        $scope.lists = data;
    }).error(function (err) {
        console.log(err);
    });
});

































